package com.om.calculator;


public class RpnCalculator {
    OperandStack values = new OperandStack();
    
    public void enter(int value) {
        values.push(value);
    }

    public int top() {
        return values.top();
    }
    
    public void add() {
        Plus plus = new Plus();
        plus.execute(values);
    }

    public void minus() {
        int rightOperand = values.pop();
        int leftOperand = values.pop();
        int sum = leftOperand - rightOperand;
        values.push(sum);
    }

    public void factorial() {
        int operand = values.pop();
        int result = 1;
        for(int i = 2; i <= operand; ++i)
            result *= i;
        
        values.push(result);
    }

}
